package com.mine.modules.vm.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import com.mine.common.annotation.vm.LabelAnnotation;
import com.mine.common.annotation.vm.QueryAnnotation;
import com.mine.modules.vm.common.constant.BizConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 监控设备
 * </p>
 *
 * @author xujf
 * @since 2024-09-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("vm_monitor")
@ApiModel(value="视频监控对象", description="监控设备")
public class VmMonitor implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @LabelAnnotation(value = "assetNumber", type = BizConstant.LABEL_ANNOTATION_TYPE_CODE)
    @QueryAnnotation(value = "camera_index_code", type = BizConstant.QUERY_ANNOTATION_TYPE_KEYWORDS)
    @ApiModelProperty(value = "监控点唯一标识")
    private String cameraIndexCode;

    @LabelAnnotation(value = "cameraName", type = "name")
    @QueryAnnotation(value = "camera_name", type = BizConstant.QUERY_ANNOTATION_TYPE_KEYWORDS)
    @ApiModelProperty(value = "监控点名称")
    private String cameraName;

    @ApiModelProperty(value = "监控点类型 ")
    private String cameraType;

    @ApiModelProperty(value = "监控点类型说明")
    private String cameraTypeName;

    @ApiModelProperty(value = "所属编码设备唯一标识")
    private String encodeDevIndexCode;

    @ApiModelProperty(value = "所属设备类型")
    private String encodeDevResourceType;

    @ApiModelProperty(value = "所属设备类型说明")
    private String encodeDevResourceTypeName;

    @ApiModelProperty(value = "监控点国标编号")
    private String gbIndexCode;

    @ApiModelProperty(value = "安装位置")
    private String installLocation;

    @ApiModelProperty(value = "纬度")
    private String latitude;

    @ApiModelProperty(value = "经度")
    private String longitude;

    @ApiModelProperty(value = "录像存储位置（0-中心存储，1-设备存储")
    private String recordLocation;

    @ApiModelProperty(value = "录像存储位置说明")
    private String recordLocationName;

    @ApiModelProperty(value = "所属区域唯一标识")
    @QueryAnnotation(value = "region_index_code", type = BizConstant.QUERY_ANNOTATION_TYPE_AND)
    private String regionIndexCode;

    @ApiModelProperty(value = "在线状态（0-不在线，1-在线")
    private String status;

    @ApiModelProperty(value = "状态说明")
    private String statusName;

    @ApiModelProperty(value = "场景图层id")
    @LabelAnnotation(value = "sceneLayerId", type = BizConstant.LABEL_ANNOTATION_TYPE_SCENE_LAYER_ID)
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String sceneLayerId;

    @ApiModelProperty(value = "视角")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String angleView;

    @TableField(exist = false)
    private String elementSceneLayerId;

    @TableField(exist = false)
    private String sid;

}
